package cn.zyq.ykb.service.task;

import cn.zyq.ykb.beans.sys.SysAdmin;
import cn.zyq.ykb.beans.task.MyTask;
import cn.zyq.ykb.beans.task.Task;
import cn.zyq.ykb.beans.task.vo.GetMyTaskNumberVo;
import cn.zyq.ykb.beans.user.User;
import cn.zyq.ykb.system.common.PageParam;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 我的任务领取Service接口
 *
 * @author SystemAuth
 * @date 2023-05-22
 */
public interface MyTaskService {
    /**
     * 查询我的任务领取
     *
     * @param myTaskID 我的任务领取主键
     * @return 我的任务领取
     */
    MyTask selectMyTaskByMyTaskID(Integer myTaskID);

    /**
     * 查询我的任务领取
     *
     * @param serviceID 我的任务领取业务ID
     * @return 我的任务领取
     */
    MyTask selectMyTaskByServiceID(String serviceID);

    /**
     * 查询我的任务领取列表
     *
     * @param pageParam
     * @return 我的任务领取集合
     */
    PageInfo<MyTask> selectMyTaskList(PageParam pageParam, User loginUser);

    /**
     * 查询我的任务领取列表
     *
     * @param param
     * @return 我的任务领取集合
     */
    List<MyTask> selectMyTaskList(MyTask param);

    /**
     * 新增我的任务领取
     *
     * @param param 我的任务领取
     * @return 结果
     */
    int insertMyTask(MyTask param);

    /**
     * 修改我的任务领取
     *
     * @param param 我的任务领取
     * @return 结果
     */
    int updateMyTask(MyTask param);

    /**
     * 批量删除我的任务领取
     *
     * @param myTaskIDs 需要删除的我的任务领取主键集合
     * @return 结果
     */
    int deleteMyTaskByMyTaskIDs(Integer[] myTaskIDs);

    /**
     * 删除我的任务领取信息
     *
     * @param myTaskID 我的任务领取主键
     * @return 结果
     */
    int deleteMyTaskByMyTaskID(Integer myTaskID);

    /**
     * 接取订单数
     * @return
     * @param admin
     */
    GetMyTaskNumberVo getMyTaskNumber(SysAdmin admin);

    Task detail(Integer myTaskID, User loginUser);
}
